/* ----------------------------------------------------------------------------
* File: user_profile.h
*
* Desc: Interface for any user profile
*
* Created: 06/05/2011, by Alexey Korshunov
* ---------------------------------------------------------------------------- */
#ifndef _USER_PROFILE_INTERFACE_H_
#define _USER_PROFILE_INTERFACE_H_

#include <string>
#include <vector>

#include "error.h"
#include "exception.h"

namespace QuizCore
{
	struct UserStatisticInfo
	{
		UserStatisticInfo(const std::string& user, unsigned int points)
			: User(user)
			, Points(points)
		{
		}

		std::string User;
		unsigned int Points;
	};
	typedef std::vector<UserStatisticInfo> UserStatisticList;

	class UserProfileManager
	{
	public:
		virtual ~UserProfileManager()
		{
		}

		virtual const UserStatisticList& GetUserStatisticInfo() const = 0;
		virtual Common::Error GivePoints(const std::string& User, unsigned int Points) = 0;
	};
}

#endif // _USER_PROFILE_INTERFACE_H_
